package edu.unmsm.ocaa.sisocaa.negocio.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;

import edu.unmsm.ocaa.sisocaa.integracion.dao.ComentarioDAO;
import edu.unmsm.ocaa.sisocaa.integracion.dao.VWencuestaDocDAO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.ComentarioDTO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.ComentarioEncDTO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.EncuestaDTO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.VWencuestaDocDTO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.VWencuestayComentarioDTO;
import edu.unmsm.ocaa.sisocaa.negocio.service.VWencuestaDocService;

@Service
public class VWencuestaDocServiceImpl implements VWencuestaDocService {

	@Resource
	VWencuestaDocDAO vwencdao;
	@Resource
	ComentarioDAO com;
	
	public List<VWencuestaDocDTO> obtenerEncuestas()
			throws DataAccessException {
		// TODO Auto-generated method stub
		return vwencdao.getListEncuestas();
	}
	@Override
	public List<VWencuestaDocDTO> obtenerEncuesta(Integer usuid)
			throws DataAccessException {
		// TODO Auto-generated method stub
		return vwencdao.getListEncuesta(usuid);
	}
	@Override
	public List<VWencuestayComentarioDTO> obtenerEncuestasyComentarios()
			throws DataAccessException {
		// TODO Auto-generated method stub
		List<VWencuestaDocDTO> listenc=vwencdao.getListEncuestas();
		List<VWencuestayComentarioDTO> listencycom=new ArrayList<VWencuestayComentarioDTO>();
		for (int i = 0; i < listenc.size(); i++) {
			VWencuestayComentarioDTO encycom=new VWencuestayComentarioDTO();
			VWencuestaDocDTO vwenc=(VWencuestaDocDTO)listenc.get(i);
			List<ComentarioDTO> comens=com.getComentariosForm(vwenc.getUsuid(), vwenc.getFormid());
			encycom=aniadirRespuestasaVWencuesta(encycom, vwenc);
			encycom=aniadirComentariosaVWEncuesta(encycom, comens);
			listencycom.add(encycom);
		}
		return listencycom;
	}
	private VWencuestayComentarioDTO aniadirRespuestasaVWencuesta(VWencuestayComentarioDTO encycom,
			VWencuestaDocDTO vwenc) {
		encycom.setUsuid(vwenc.getUsuid());
		encycom.setUnidep(vwenc.getUnidep());
		encycom.setApenom(vwenc.getApenom());
		encycom.setCategoria(vwenc.getCategoria());
		encycom.setClase(vwenc.getClase());
		encycom.setFormid(vwenc.getFormid());
		encycom.setResp1(vwenc.getResp1());
		encycom.setResp2(vwenc.getResp2());
		encycom.setResp3(vwenc.getResp3());
		encycom.setResp4(vwenc.getResp4());
		encycom.setResp5(vwenc.getResp5());
		encycom.setResp6(vwenc.getResp6());
		encycom.setResp7(vwenc.getResp7());
		encycom.setResp8(vwenc.getResp8());
		encycom.setResp9(vwenc.getResp9());
		encycom.setResp10(vwenc.getResp10());
		encycom.setResp11(vwenc.getResp11());
		encycom.setResp12(vwenc.getResp12());
		encycom.setResp13(vwenc.getResp13());
		encycom.setResp14(vwenc.getResp14());
		encycom.setResp15(vwenc.getResp15());
		encycom.setResp16(vwenc.getResp16());
		encycom.setResp17(vwenc.getResp17());
		encycom.setResp18(vwenc.getResp18());
		encycom.setResp19(vwenc.getResp19());
		encycom.setResp20(vwenc.getResp20());
		encycom.setResp21(vwenc.getResp21());
		encycom.setResp22(vwenc.getResp22());
		encycom.setResp23(vwenc.getResp23());
		encycom.setResp24(vwenc.getResp24());
		encycom.setResp25(vwenc.getResp25());
		encycom.setResp26(vwenc.getResp26());
		encycom.setResp27(vwenc.getResp27());
		encycom.setResp28(vwenc.getResp28());
		encycom.setResp29(vwenc.getResp29());
		encycom.setResp30(vwenc.getResp30());
		encycom.setResp31(vwenc.getResp31());
		encycom.setResp32(vwenc.getResp32());
		encycom.setResp33(vwenc.getResp33());
		return encycom;
	}
	private VWencuestayComentarioDTO aniadirComentariosaVWEncuesta(VWencuestayComentarioDTO encycom,
			List<ComentarioDTO> comens) {
		if(comens.size()>0){
		for (int i = 0; i < comens.size(); i++) {
			List<EncuestaDTO> l=new ArrayList<EncuestaDTO>();
			EncuestaDTO e=new EncuestaDTO();
			e.setPq("No se cumple el estandar # Porque: "+comens.get(i).getPorque());
			e.setPreg(comens.get(i).getPreg());
			e.setSol("Para que se cumpla el estandar # se debe: "+comens.get(i).getSolucion());
			l.add(e);
			if(comens.get(i).getPreg()==1){
				encycom.setPq1(l);
			}else if(comens.get(i).getPreg()==2){
				encycom.setPq2(l);
			}else if(comens.get(i).getPreg()==3){
				encycom.setPq3(l);
			}else if(comens.get(i).getPreg()==4){
				encycom.setPq4(l);
			}else if(comens.get(i).getPreg()==5){
				encycom.setPq5(l);
			}else if(comens.get(i).getPreg()==6){
				encycom.setPq6(l);
			}else if(comens.get(i).getPreg()==7){
				encycom.setPq7(l);
			}else if(comens.get(i).getPreg()==8){
				encycom.setPq8(l);
			}else if(comens.get(i).getPreg()==9){
				encycom.setPq9(l);
			}else if(comens.get(i).getPreg()==10){
				encycom.setPq10(l);
			}else if(comens.get(i).getPreg()==11){
				encycom.setPq11(l);
			}else if(comens.get(i).getPreg()==12){
				encycom.setPq12(l);
			}else if(comens.get(i).getPreg()==13){
				encycom.setPq13(l);
			}else if(comens.get(i).getPreg()==14){
				encycom.setPq14(l);
			}else if(comens.get(i).getPreg()==15){
				encycom.setPq15(l);
			}else if(comens.get(i).getPreg()==16){
				encycom.setPq16(l);
			}else if(comens.get(i).getPreg()==17){
				encycom.setPq17(l);
			}else if(comens.get(i).getPreg()==18){
				encycom.setPq18(l);
			}else if(comens.get(i).getPreg()==19){
				encycom.setPq19(l);
			}else if(comens.get(i).getPreg()==20){
				encycom.setPq20(l);
			}else if(comens.get(i).getPreg()==21){
				encycom.setPq21(l);
			}else if(comens.get(i).getPreg()==22){
				encycom.setPq22(l);
			}else if(comens.get(i).getPreg()==23){
				encycom.setPq23(l);
			}else if(comens.get(i).getPreg()==24){
				encycom.setPq24(l);
			}else if(comens.get(i).getPreg()==25){
				encycom.setPq25(l);
			}else if(comens.get(i).getPreg()==26){
				encycom.setPq26(l);
			}else if(comens.get(i).getPreg()==27){
				encycom.setPq27(l);
			}else if(comens.get(i).getPreg()==28){
				encycom.setPq28(l);
			}else if(comens.get(i).getPreg()==29){
				encycom.setPq29(l);
			}else if(comens.get(i).getPreg()==30){
				encycom.setPq30(l);
			}else if(comens.get(i).getPreg()==31){
				encycom.setPq31(l);
			}else if(comens.get(i).getPreg()==32){
				encycom.setPq32(l);
			}else if(comens.get(i).getPreg()==33){
				encycom.setPq33(l);
			}
		}
		}return encycom;
	}

}
